This invention relates to a content addressable memory (CAM) and more particularly to a new programmable variable field content addressable memory.
A content addressable memory is a memory device wherein data is stored in memory word locations and a search word is simultaneously compared with all stored data words. When a match occurs between the search word and the stored data word or words, a match signal is generated. If a match for only a portion of a stored data word is desired, masking techniques are employed, but this results in a considerable waste of storage bits because of the fixed width of a storage word location.
A window addressable memory (WAM) is a memory device which stores a plurality of windows having a plurality of user-selected fields. During operation the WAM produces a pointer indicating which windows if any bound an input data word. To be considered within a window, all fields of the input word must be less than the upper limits and greater than the lower limits of the window. The output of a WAM device is a match signal indicating that the word presented to the input fell into one of the windows. The address of the matched word may be read-out. When multiple matches occur, a priority scheme is used to allow addresses to be read out sequentially. WAM devices may be connected together to make a larger WAM memory system. However, the WAM is only metalization mask programmable for selecting field boundaries before fabrication, and although masking may be used to essentially change a field of size, this approach wastes bits.
A CAM may be modified to perform a compare between limit operation on input data. However, such an operation requires additional comparator and arithmetic circuitry which consumes considerable semiconductor chip area.
An associative comparator (AC) is a device (developed by IBM, Federal Systems Division, Manassas, Virginia) which compares an input operand associatively (i.e. all operation simultaneously) with the entire contents of a limit memory. An AC chip compares two 16-bit parameters to 32 sets of upper and lower limits and generates a 5-bit match address. Each of the two parameter compares for each of the 32 compare cells can be independently programmed for compare within limits or compare outside limits. Each compare cell can be independently enabled or disabled and either of the two parameters can be globally disabled, that is, disregarded for all 32 compare cells. Several AC devices can be cascaded horizontally to accommodate any number of parameters, and vertically to provide any number of compare cells. The match readout circuitry is pipelined so that it can read out matches from a previous comparison while the current comparison is in progress. However, an AC device does not have the ability to change the location of a field boundary.